# 二叉树的直径


class Solution:
    ans = 1
    def diameterOfBinaryTree(self, root):
        def depth(root):
            if not root:
                return 0
            
            L = depth(root.left)
            R = depth(root.right)

            # 加1 可以避免重复相等的最大值
            self.ans = max(self.ans, L + R + 1)

            return max(L, R) + 1
        
        depth(root)

        return self.ans - 1
